The ListBox controls support UI virtualization so they are blazing-fast while able to display thousands of items with virtually no loss of performance. You can determine how many items are rendered in each layout pass by setting the ViewportGap and ViewportPreviewGap properties. These properties can be adjusted depending on the scenario.
The ViewportGap property gets or sets a coefficient which will determine in each layout pass the size of the viewport. If zero is specified, the size of the viewport will be equal to the scrollviewer viewport. If 0.5 is specified, the size of the viewport will be enlarged to take up half screen more at both sides of the original viewport.
The ViewportPreviewGap property gets or sets a coefficient which will determine in each layout pass the size of the viewport to render items in preview mode.